package com.ssy.lingxi.common.constant.template;


import com.ssy.lingxi.common.language.LanguageHolder;

import java.util.stream.Stream;

/**
 * 模板类型
 * @author fhj
 * @date 2020/07/25
 * @version 2.0.0
 */
public enum PageTemplateTypeEnum {

    PLATFORM(0,"平台首页模板"),
    MALL(1,"企业商城模板"),
    SHOP(2, "会员店铺模板"),
    GOODS(3, "商品描述模板"),
    CHANNEL(4, "渠道商城模板"),
    ACTIVITY(5, "活动模板"),
    SELF(6, "自营商城模板")
    ;

    Integer code;

    PageTemplateTypeEnum(Integer code, String message) {
        this.code = code;
    }

    /**
     * 判断是否为关联企业商城的模板
     * @param code 模板类型
     */
    public static boolean checkEnterpriseShopTemplate(Integer code) {
        return Stream.of(MALL, SHOP, SELF).anyMatch(o -> o.getCode().equals(code));
    }

    /**
     * 判断是否为关联商城ID的模板
     * @param code 模板类型
     */
    public static boolean checkShopIdTemplate(Integer code) {
        return Stream.of(MALL, SHOP, CHANNEL, SELF).anyMatch(o -> o.getCode().equals(code));
    }

    /**
     * 判断是否为直接使用的模板
     * @param code 模板类型
     */
    public static boolean checkStatusTemplate(Integer code) {
        return Stream.of(PLATFORM, MALL, GOODS).anyMatch(o -> o.getCode().equals(code));
    }

    /**
     * 判断是否为允许使用的模板
     * @param code 模板类型
     */
    public static boolean checkAllowTemplate(Integer code) {
        return Stream.of(SHOP, CHANNEL, ACTIVITY, SELF).anyMatch(o -> o.getCode().equals(code));
    }

    public String getMessage() {
        return LanguageHolder.getName(this.getClass(),this.code);
    }


    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }
}
